約 2,959,450 件
https://w.atwiki.jp/lookworld/pages/38.html
テーブル作成 テーブルExport&Inport ユーザ各種設定情報検索 ロール 権限の集合 オンラインREDOログ設計 テンポラリセグメント設計 ロールバックセグメント設計 インデックス設計 表領域とデータファイルの管理 テーブル設計 データベース設計 Oracle 8i アンインストール Oracle SQL Plus コマンド バッチ設定手順 DBの容量見積もり NULLとの演算
https://w.atwiki.jp/wiki7_az/pages/8.html
rman でバックアップを取る dbca で rmanリポジトリ(データベース)を作成する。グローバル・データベース名 rmanrep SID rmanrep パスワード oracle キャラクタセット Unicode(AL32UTF8) 各国語キャラクタセット UTF8 oranavi で自動起動設定を ON にする。 rman ユーザを作成する。 $ export ORACLE_SID=rmanrep $ sqlplus "/ as sysdba" create user rman identified by rman quota unlimited on users; grant connect, resource, recovery_catalog_owner to rman; $ rman catalog rman/rman create catalog; connect target sys/oracle@orcl register database; backup database; rman tips Miracle Linux V4.0 で rman を使用できない $ which rman /usr/bin/X11/rman ← Oracle の rman とは別のプログラムを呼び出している。 アーカイブログ手動削除後に再同期するには crosscheck copy; delete expired copy; delete obsolete; リカバリ・カタログを更新する resync catalog; rman リポジトリの設定を確認する $ export ORACLE_SID=rmanrep rman connect target sys/manager@orcl.db01.oracle.co.jp connect catalog rman/rman@rmanrep show all RMAN 20003 エラーが発生する場合 reset database; DBA SQL DDL取得 set pagesize 0 SELECT DBMS_METADATA.GET_DDL( TABLE , USER_TABLES.TABLE_NAME), DBMS_METADATA.GET_DEPENDENT_DDL( INDEX , USER_TABLES.TABLE_NAME) FROM USER_TABLES; 表ロック調査 COL USERNAME FOR A8 COL OBJECT_NAME FOR A8 COL LMODE FOR 9999 COL PROGRAM FOR A8 COL CTIME FOR 9999 SELECT S.USERNAME, S.SID, S.SERIAL#, O.OBJECT_NAME, LMODE, V.CTIME, S.PROGRAM FROM DBA_OBJECTS O, V$LOCKED_OBJECT L, V$SESSION S, V$LOCK V WHERE O.OBJECT_ID = L.OBJECT_ID AND L.SESSION_ID = S.SID AND L.SESSION_ID = V.SID AND V.TYPE = TM ORDER BY CTIME DESC; 行ロック調査 SELECT S.USERNAME, S.SID, S.SERIAL#, O.OBJECT_NAME, LMODE, V.CTIME, S.PROGRAM FROM DBA_OBJECTS O, V$LOCKED_OBJECT L, V$SESSION S, V$LOCK V WHERE O.OBJECT_ID = L.OBJECT_ID AND L.SESSION_ID = S.SID AND L.SESSION_ID = V.SID AND V.TYPE = TX ORDER BY CTIME DESC; SQL調査 SELECT A.SQL_TEXT, A.ADDRESS FROM V$SQLAREA A, V$SESSION B WHERE A.ADDRESS = B.SQL_ADDRESS AND B.SID = ANY(SELECT SID FROM V$LOCK WHERE TYPE IN ( TX , TM )); 統計情報収集(スキーマ単位) BEGIN DBMS_STATS.GATHER_SCHEMA_STATS ( ownname = スキーマ名 , options = GATHER AUTO ); END; / 統計情報収集(テーブル単位) BEGIN DBMS_STATS.GATHER_TABLE_STATS( OWNNAME = スキーマ名 ,TABNAME = テーブル名 ); END; / 統計情報収集日付の確認 SELECT TABLE_NAME NAME, LAST_ANALYZED FROM USER_TABLES ORDER BY TABLE_NAME; 統計情報の内容確認 SELECT TABLE_NAME, NUM_ROWS, AVG_ROW_LEN, BLOCKS FROM USER_TABLES ORDER BY TABLE_NAME; セッションを強制終了する SELECT SID|| , ||SERIAL#|| , ||STATUS|| , ||USERNAME FROM V$SESSION WHERE USERNAME = C_LIVE ; SID|| , ||SERIAL#|| , ||STATUS|| , ||USERNAME --------------------------------------------- 199,7860,INACTIVE,C_LIVE 213,6979,INACTIVE,C_LIVE ALTER SYSTEM KILL SESSION 199,7860 ALTER SYSTEM KILL SESSION 213,6979 DBID を確認する $ sqlplus "/ as sysdba" select dbid from v$database; select username, default_tablespace from dba_users; select FILE_NAME, TABLESPACE_NAME from dba_data_files; http //www.dbforums.com/archive/index.php/t-1066637.html select dbms_metadata.get_ddl( TRIGGER , name , owner ) from dual; ユーザ作成 $ sqlplus /nolog connect / as sysdba create user scott profile default identified by tiger default tablespace user01 temporary tablespace temp account unlock; grant resource, connect to amashin; quit; UNDO保存を保証する。 select tablespace_name, retention from dba_tablespaces; alter tablespace UNDOTBS1 retention guarantee; データファイルの自動拡張を有効化する。 select file_name, tablespace_name from dba_data_files; select autoextensible, tablespace_name from dba_data_files; alter database datafile /opt/app/oracle/oradata/orcl/undotbs01.dbf autoextend on; ユーザのアカウントロックを解除する。 -- ロック解除 alter user SCOTT account unlock; -- パスワード変更 $ sqlplus scott/tiger SCN からタイムスタンプを求める。 select current_scn scn, scn_to_timestamp(current_scn) timestamp from v$database; タイムスタンプから SCN を求める。 select timestamp_to_scn(systimestamp) scn, systimestamp timestamp from dual; SQL*Plus CSV書き出し set linesize 1000 set pagesize 0 set trimspool on spool user_data.txt select " ||id|| "," ||name|| " from users; シノニム PUBLICシノニムを作成する $ sqlplus "/ as sysdba" CREATE PUBLIC SYNONYM emp FOR scott.emp; シノニムを削除する drop public synonym samplelink; データベースリンク データベースリンクの定義を確認する $ export ORACLE_SID=orcl $ sqlplus "/ as sysdba" select owner,db_link,username,host,created from dba_db_links; データベースリンクを作成する $ export ORACLE_SID=orcl $ sqlplus "/ as sysdba" create public database link samplelink connect to scott identified by tiger using orcl.db01.oracle.co.jp ; データベースリンクを使用する $ export ORACLE_SID=orcl $ sqlplus scott/tiger select * from emp@samplelink データベースリンクを削除する drop public database link samplelink; スタンドバイ・データベースを rman でバックアップすると、ORA-19573 エラーが発生する 症状 ORA-19573 cannot obtain sub-shared enqueue for datafile 6 原因 RMAN in version 9.2.0.1 のバグです。(bug 2688591 (TAR 2708247.999)) 処置方法 SQL shutdown immediate; SQL startup nomount; SQL alter database mount standby database; SQL alter database recover managed standby database disconnect from session; 参考情報 http //www.trivadis.ch/Images/standbybackup_en_tcm17-7294.pdf If you create a new tablespace on the primary database, perform a logfile switch and want to back up this tablespace on the standby database,RMAN in version 9.2.0.1 aborts with an error RMAN backup tablespace test; ORA-19573 cannot obtain sub-shared enqueue for datafile 6 This behavior has now been accepted as bug 2688591 (TAR 2708247.999). But there is a workaround stopping and starting the standby database, after which the backup works correctly. export/import 全データベースモードでエクスポートする $ export ORACLE_SID=orcl $ exp system/パスワード file=fulldump.dmp log=fulldump.log full=y ユーザーモードでエクスポートする $ export ORACLE_SID=orcl $ exp scott/tiger file=scott.dmp owner=scott ユーザーモードでインポートする $ imp scott/tiger file=sccot.dmp fromuser=sccot touser=sccot destroy=y ignore=y ORA-19809 リカバリ・ファイルの制限を超えています pfile の db_recovery_file_dest_size を増やす。 $ export ORACLE_SID=devel $ sqlplus "/ as sysdba" SQL create pfile= $ORACLE_BASE/admin/$ORACLE_SID/pfile/init$ORACLE_SID.ora from spfile; SQL exit $ vi $ORACLE_BASE/admin/$ORACLE_SID/pfile/init$ORACLE_SID.ora 編集した pfile から spfile を作成する。 $ cd $ORACLE_BASE/admin/$ORACLE_SID/pfile $ mv init$ORACLE_SID.ora init$ORACLE_SID.ora.org $ sqlplus "/ as sysdba" SQL create spfile from pfile= $ORACLE_BASE/admin/$ORACLE_SID/pfile/init$ORACLE_SID.ora ; SQL startup 参考 14 ORA-19400~ORA-24276 SQL*Loader コマンド $ export ORACLE_SID=orcl $ sqlldr userid=user01/******** control=testtbl.ctl data=testtbl.dat シーケンスを使用する(参考URL) LOAD DATA CHARACTERSET JA16SJIS INTO TABLE T_COMPANY_RAW FIELDS TERMINATED BY , trailing nullcols (ID "SEQ_COMPANY_RAW_ID.NEXTVAL", CORP_TYPE, NAME, ・ ・ FUTURE) 改行があるデータの流し込み load data CHARACTERSET JA16SJIS append continueif last != " into table test_table fields terminated by , enclosed by " ( ID, NAME, VALUE, TESTDATE DATE "YYYYMMDD") 日付データの流し込み load data CHARACTERSET JA16SJIS append into table t_answers fields terminated by , trailing nullcols ( id, campaign_id, user_id, registered "to_date( registered, YYYY/MM/DD HH24 MI SS )" ) 「データ・ファイルのフィールドが最大長を超えています。」 load data CHARACTERSET JA16SJIS append into table t_encourage fields terminated by , ( ID, CAT2_ID, MAILBODY char(4000)) Oracle 10g R10.2.0.1 インストール (MiracleLinuxV3.0) memoRPM を更新してから Oracle をインストールする DHCP を使用している場合、一時的にTCP/IPの設定で固定IPアドレスを割り当ててから、Oracle をインストールする ダウンロードOracle 10g R10.2.0.1 をダウンロードする rootユーザでログインする ランレベルを 5 に変更する # init 5 oranavi を起動する # oranavi Oracle DBMS のインストール全てデフォルト設定でインストール Oracle 9i R9.2.0.4.0 インストール後に必要な作業 Run the following commands and scripts in order from $ORACLE_HOME in migrate mode on all updated databases. If you are using the OLAP option, then ensure the database listener is up. $ sqlplus "/ as sysdba" startup migrate spool patch.log @?/rdbms/admin/catpatch.sql shutdon immediate startup This step is optional, and will recompile all invalid PL/SQL packages now instead of when the packages are accessed the first time. The utlrcmp.sql script can be used to parallelize this in multiprocessor machines. @?/rdbms/admin/utlrp.sql Enter the following commands if using Oracle OLAP option alter user olapsys identified by password account unlock; connect olapsys/password @?/cwmlite/admin/postamd.sql ORA-06512 → 参考URL 現象 ORA-00604 error occurred at recursive SQL level 1 ORA-06521 PL/SQL Error mapping function ORA-06512 at "SYS.OLAPIHISTORYRETENTION", line 1 ORA-06512 at line 6 原因 BUG 3386542 処置 (metalink Note 266728.1) Disable OLAPISTARTUPTRIGGER and OLAPISHUTDOWNTRIGGER to avoid error from being generated. ALTER TRIGGER OLAPISTARTUPTRIGGER DISABLE; ALTER TRIGGER OLAPISHUTDOWNTRIGGER DISABLE; rmanでデータベースを複製する 前提条件Miracle Linux V3.0 Oracle 10g Standard Edition ターゲット・データベースへ接続できるようにする $ vi /opt/app/oracle/product/10.1.0/db_1/network/admin/tnsnames.ora ACCOUNT1.DB01.ORACLE.CO.JP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.101)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = account1.db01.oracle.co.jp) (SERVER = DEDICATED) ) ) ACCOUNT1.RESEARCH01.ORACLE.CO.JP = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.102)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = account1.oracle.co.jp) (SERVER = DEDICATED) ) ) $ vi /opt/app/oracle/product/10.1.0/db_1/network/admin/listener.ora (SID_DESC = (GLOBAL_DBNAME = account1.db01.oracle.co.jp) (ORACLE_HOME = /opt/app/oracle/product/10.1.0/db_1) (SID_NAME = account1) ) $ sqlplus scott/tiger@account1.db02.oracle.co.jp ターゲット・データベースのバックアップ (複製側) # su - oracle $ mkdir -p /opt/app/oracle/oradata/account1/backups ← ターゲットデータベース側・複製側の両方で作成する $ export ORACLE_SID=orcl $ sqlplus /nolog conn / as sysdba create user rman identified by rman temporary tablespace temp default tablespace users quota unlimited on users; grant recovery_catalog_owner, connect, resource to rman; $ rman catalog rman/rman@orcl connect target sys/manager@account1.db01.oracle.co.jp; create catalog; register database; configure retention policy to redundancy = 1; configure controlfile autobackup on; configure controlfile autobackup format for device type disk to /opt/app/oracle/oradata/account1/backups/%F ; backup database format /opt/app/oracle/oradata/account1/backups/full_%d_%T_s%s_p%p ; backup archivelog all delete all input format /opt/app/oracle/oradata/account1/backups/arc_%d_%T_s%s_p%p ; 補助データベースを作成する $ orapwd file=/opt/app/oracle/product/10.1.0/db_1/dbs/orapwaccount1 password=manager entries=30 force=y alter system set remote_login_passwordfile= EXCLUSIVE scope=spfile; shutdown immediate startup force nomount show parameters remote_login_passwordfile; $ cd /opt/app/oracle/admin/account1/ $ mkdir pfile bdump cdump create udump $ cd /opt/app/oracle/admin/account1/pfile $ vi initaccount1.ora DB_NAME=account1 CONTROL_FILES=(/opt/app/oracle/oradata/account1/control01.ctl, /opt/app/oracle/oradata/account1/control02.ctl, /opt/app/oracle/oradata/account1/control03.ctl) $ export ORACLE_SID=account1 $ sqlplus "/ as sysdba" create spfile from pfile= /opt/app/oracle/admin/account1/pfile/initaccount1.ora ; startup force nomount $ lsnrctl start $ rman target sys/manager@account1.db01.oracle.co.jp auxiliary sys/manager@account1.db02.oracle.co.jp duplicate target database to account1 nofilenamecheck; duplicate target database for standby nofilenamecheck; フラッシュバックドロップ ごみ箱の中を見る。 SELECT original_name, type, ts_name, droptime, dropscn, object_name FROM user_recyclebin; テーブルをリストアする。 flashback table test to before drop; インデックスをリストアするテーブルをリストアすると、インデックスや制約も復活するが、名前はごみ箱の中の時のままなので、手動でリネームする。 select index_name from user_indexes where table_name = TEST ; alter index "BIN$ExUXY+Nfh9zgQAB/AQAI6g==$0" rename to PK_TEST; ごみ箱を空にする。 purge dba_recyclebin; purge user_recyclebin; purge tablespace user01 user test; purge table test; purge index pk_test; ごみ箱を介さずに削除する。 drop table test purge; drop user scott cascade; drop tablespace user01 including contents; フラッシュバックデータベースを有効にする DB_RECOVERY_FILE_DEST、DB_RECOVERY_FILE_DEST_SIZE が設定されているか確認する。 select name,value from v$parameter where name like db_recovery_file_dest% ; 設定されていなければ、設定する。 alter system set db_recovery_file_dest= /opt/app/oracle/flash_recovery_area scope =both; alter system set db_recovery_file_dest_size = 2147483648 scope = both; アーカイブログモードにする。 shutdown immediate startup mount alter database archivelog; alter database open; archive log list; フラッシュバックログの保存期間を確認する。 select name, value from v$parameter where name = db_flashback_retention_target ; フラッシュバックデータベース機能を有効化する。 shutdown immediate startup mount alter database flashback on; alter database open select log_mode, flashback_on from v$database; どの時点までフラッシュバックできるか確認する。 select flashback_size/1024/1024 "SIZE(M)", estimated_flashback_size/1024/1024 "EST_SIZE(M)", oldest_flashback_scn, to_char(oldest_flashback_time, YYYY-MM-DD HH24 MI SS ) from v$flashback_database_log; フラッシュバックデータの書き込みサイズを確認する。 select to_char(begin_time, HH24 ) hour, flashback_data/1024 "FLASHBACK_DATA(K)", redo_data/1024 "REDO_DATA(K)" from v$flashback_database_stat; フラッシュバックデータベースを実行する SQL shutdwon immediate SQL startup mount SQL flashback database to scn 608964; SQL flashback database to time "to_timestamp( 06-05-06 22 41 00.059098 )"; RMAN flashback database to scn 608964; RMAN flashback database to time "to_timestamp( 06-05-06 22 41 00.059098 )"; RMAN flashback database to sequence 1 thread 1; データベースをオープンする。 shutdown immediate startup mount alter databse open read only; -- 読み取り専用でオープンする場合 alter database open resetlogs; -- 読み書き可能でオープンする場合 フラッシュバックログから表領域を除外する alter tablespace example flashback off; select name, flashback_on from v$tablespace; ブロック破損 ブロック破損の診断 $ dbv file=/opt/app/oracle/oradata/orcl/system01.dbf SQL analyze table test validate structure cascade; SQL analyze index pk_test validate structure; rman で物理破損ブロックを検出する。 RMAN backup validate datafile 1; SQL select * from v$database_block_corruption; rman で論理破損ブロックを検出する。 RMAN backup check logical datafile 1; rman で物理破損チェックを行わずにバックアップを行う。 RMAN backup nochecksum datafile 1; 破損ブロックを含んだままバックアップをとる。 RMAN run { set maxcorrupt for datafile /opt/app/oracle/oradata/orcl/system01.dbf to 2; backup datafile /opt/app/oracle/oradata/orcl/system01.dbf ; } rman によるブロックメディアリカバリ RMAN blockrecover datafile 1 block 1; RMAN blockrecover corruption list; 簡単なジョブの作成 ジョブを作成する $ export ORACLE_SID=rmanrep $ sqlplus "/ as sysdba" BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name = SYS.BACKUP , job_type = EXECUTABLE , job_action = /home/oracle/devel/shell/backup.sh , start_date = SYSTIMESTAMP, repeat_interval = FREQ=DAILY;BYHOUR=5;BYMINUTE=0 , enabled = TRUE, auto_drop = FALSE, comments = ORCLデータベースのバックアップ ); END; / ジョブを削除する BEGIN DBMS_SCHEDULER.DROP_JOB(job_name = sys.backup ); END; / プログラムとスケジュールを使用したジョブの作成 SCOTTユーザに CREATE JOB 権限を与える $ export ORACLE_SID=orcl $ sqlplus "/ as sysdba" GRANT CREATE JOB TO SCOTT; CONNECT SCOTT/TIGER; ストアドプロシージャの作成 CREATE OR REPLACE PROCEDURE test_del( p_id test.id%TYPE) AS BEGIN DELETE FROM test WHERE ID = p_id; END test_del; / プログラムの作成 BEGIN -- プログラムの作成 DBMS_SCHEDULER.CREATE_PROGRAM( program_name = SCOTT.TEST_PROGRAM , program_type = STORED_PROCEDURE , program_action = SCOTT.TEST_DEL , number_of_arguments = 1, enabled = FALSE, comments = TEST表のDELETE ); -- プログラム引数の定義 DBMS_SCHEDULER.DEFINE_PROGRAM_ARGUMENT( program_name = SCOTT.TEST_PROGRAM , argument_name = P_ID , argument_position = 1, argument_type = NUMBER ); -- プログラムの有効化 DBMS_SCHEDULER.ENABLE( SCOTT.TEST_PROGRAM ); END; / スケジュールの作成 BEGIN DBMS_SCHEDULER.CREATE_SCHEDULE( schedule_name = SCOTT.MONTHLY_SCHEDULE , start_date = SYSTIMESTAMP, repeat_interval = FREQ=MONTHLY;BYMONTHDAY=15 , comments = 毎月15日実行 ); END; / プログラムとスケジュールを利用したジョブの作成 BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name = SCOTT.TEST_JOB , program_name = SCOTT.TEST_PROGRAM , schedule_name = SCOTT.MONTHLY_SCHEDULE , enabled = FALSE, auto_drop = FALSE, comments = TEST表のDELETE ); DBMS_SCHEDULER.SET_JOB_ARGUMENT_VALUE( job_name = SCOTT.TEST_JOB , argument_name = P_ID , argument_value = 10 ); DBMS_SCHEDULER.ENABLE( SCOTT.TEST_JOB ); END; / PL/SQL PL/SQL実行後、エラーを表示する。 SHOW ERROR DBMS_OUTPUT.PUT_LINE などでの画面出力を有効にする。 SET SERVEROUTPUT ON
https://w.atwiki.jp/wiki8_m2/pages/25.html
2.1 OUIの機能 Oracle Universal Installer(OUI)には、以下の3つの機能がある。 新規ソフトウェアのインストール インストール済製品の確認 製品のアンインストール 2.3 OUIの非対話形式での使用 OUIを用いて日対話形式でOracleソフトウェアをインストールする際は、レスポンスファイルを使用する。 【レスポンスファイルの使用について】 ・OracleソフトウェアのCD-ROMに収録されているサンプルファイルを編集する。 ・インストール時に入力が必要なパラメータを前もって記述する。 2.4 Oracleインストールのシステム用件 【システム用件(Windows)】 要件 最小値 物理メモリー(RAM) 256MB(最小)、512MB(推奨) 仮装メモリー RAM容量の2倍 一時ディスク領域 100MB ハードディスク領域 1.5GB 【システム要件(Linux)】 要件 最小値 物理メモリー(RAM) 512MB スワップ領域 1GBまたはRAM容量の2倍 /tmp内のディスク領域 400MB ソフトウェアファイル用のディスク領域 2.5GB 2.5 Oracleソフトウェアが使用する環境変数 環境変数 内容 ORACLE_BASE Optimal Flexible Architecture(OFA)に基づいたOracleディレクトリ構造のベースディレクトリを指定する ORACLE_HOME Oracleソフトウェアを含むディレクトリを指定する ORACLE_SID インスタンス名を指定する LD_LIBRARY_PATH 共有オブジェクトライブラリの位置を指定する 2.7 Linux環境でのOracleインストール(ローカルグループとユーザー) Linux環境においてOracleソフトウェアをインストールするには、次のローカルグループおよびユーザーが存在している必要がある。 oinstallグループ・・・Oracleインベントリグループ dbaグループ・・・OSDBAグループ oracleユーザー・・・Oracleソフトウェアの所有者 Windows環境では管理者権限をもったユーザーで インストールする必要がある(administratorなど) 2.8 Linux環境でのOracleインストール(スクリプト) Linux環境でOracleソフトウェアをインストールする場合、rootユーザーでOSプロンプトから以下のスクリプトを実行する必要がある。 root.sh orainstRoot.sh Windows環境ではこれらのスクリプトは実行する必要はない 2.10 Database Configuration Assistant(DBCA) Database Configuration Assistant(DBCA)では以下の機能を行うことができる。 データベースの作成 データベース・オプションの構成 データベースの削除 テンプレートの管理 データベース名の変更はできない →データベースの再作成または制御ファイルの再結成が必要 2.11 DBCAの使用テンプレート DBCAが使用するテンプレートには以下の2つのタイプがある シードテンプレート ①ソースとなる既存のデータベース構造情報と物理データファイルの両方を持つ ②物理データファイルやユーザー定義のスキーマなどが含まれている →短時間でのデータベース作成が可能! 非シードテンプレート ①ソースデータベースで指定されているデータベースオプション、表領域、 データファイル、初期化パラメータファイルなどの構造的な情報が含まれている ②ユーザー定義のスキーマデータは含まれていない →必要に応じて属性を変更できるため、柔軟データベース作成が可能! 2.12 DBCA「データベースオプションの構成」 DBCAの「データベースオプションの構成」では、以下の構成ができる。 Oracle TextやOracle OLAPなどのオプションのデータベースコンポーネントに関する構成 デフォルトのデータベース稼動モードの切り替え(専用サーバーモード/共有サーバーモード) 2.13 Database Upgrade Assistant(DBUA)のサイレントモードでの使用 Database Upgrade Assistant(DBUA)は、対話形式でOracleソフトウェアをアップグレード処理する場合に使用する。 また、DBUAをユーザーインターフェースを表示せずに実行する場合、サイレントモードを使用する。 例)ORCLというデータベースをサイレンとモードでアップグレードする場合 dbua -silent -dbName ORCL 2.15 DBCAを使用時のブロックサイズの指定 DBCAを使用したデータベース作成時、ブロックサイズを指定するためにはカスタムテンプレートを使用する必要がある。 カスタムテンプレートを使用するには、データベース作成時にオプションとして「カスタムデータベース」を指定する。 2.16 専用サーバーモードと共有サーバーモード 専用サーバーモード ・1つのユーザープロセスに対して、1つのサーバープロセスが稼動するモード →ユーザーが少数の場合に有効 共有サーバーモード ・複数のユーザープロセスがサーバープロセスを共有するモード →サーバープロセスの数を最低限に抑え、使用可能な システムリソースの使用効率を最大化 2.17 DBCAのテンプレート DBCAのテンプレートには、データベースの作成に必要な情報がXML形式で記述されている。 非シードテンプレートは物理データファイルやユーザー定義のスキーマなどを持っていないため、シードテンプレートと比較してデータベース作成に時間がかかる。 2.18ディクショナリ管理の表領域 【ディクショナリ管理のパラメータ】 項目 説明 初期サイズ セグメントに割り当てられる最初のエクステントのサイズを指定(サイズを指定しなかった場合のデフォルト値) 次のサイズ 2番目以降のエクステントのサイズを指定 最小サイズ エクステントのサイズが、指定サイズまたはその倍数に設定される(サイズを指定しなかった場合のデフォルト値) 増分サイズ 第2(次のサイズ)エクステントより後に割り当てられるエクステントのサイズが拡張される割合を指定する 最小値 セグメント作成時に割り当てられるエクステント数を指定する 最大値 セグメントが保持できるエクステント数の最大値を指定 エクステント情報はデータディクショナリで管理される。データディクショナリは SYSTEM表領域に格納されているため、新たなオブジェクトを作成しエクステントを 獲得した時点でSYSTEM表領域にI/Oが発生する。
https://w.atwiki.jp/adsl243/pages/15.html
Enterprise Manager sql*plus oracle設定関連 oracle用語集 データベース関連 ゴミ(´・ω・`)
https://w.atwiki.jp/lookworld/pages/47.html
論理データベース構造 論理的にデータベースの領域を分割することにより、より効率的できめ細かい管理を行うことが出来る。 データベースは以下のように構成されている。 物理的構成 ・ データファイル ・ 制御ファイル ・ REDOログファイル 論理的構成 ・ 表領域 ・ セグメント ・ エクステント ・ データブロック 論理的データベースについて 表領域について 1つのデータベースに属し、1つ以上のデータファイルで構成される。 データベース管理者は、表領域のオンライン/オフラインや、書き込み許可/禁止を切り替えて、表領域のアクセスを制御することができる。 セグメントについて 表領域内で、特定タイプの論理記憶構造に割り当てられる領域。 セグメントには、表セグメント、索引セグメント、一時セグメント、ロールバックセグメントなどの種類がある。セグメントは、同じ表領域に属する複数のファイルにまたがることもある。 エクステントについて セグメント内の一連の連続するブロック。 セグメントは1つ以上のエクステントで構成される。エクステントは複数のファイルにまたがることができず、1つのデータファイル内に存在しなければならない。 データブロックについて 論理データベース構造の最小単位。 1つのデータファイルに属する1つ以上のOSブロックで構成されている。エクステントは、1つ以上のデータブロックで構成されている。データブロックのサイズは、データベース作成時に初期化パラメータ「 DB_BLOCK_SIZE 」で指定する。 表領域の管理 表領域を効率的に構成したり、運用したりすればデータベースをより柔軟に管理することができる。 例えば表領域ごとに、ユーザー領域を割り当てる、アクセスを制限する、I/O分散を行う、部分的にバックアップやリカバリを行う・・・など。 表領域は、1つのデータベースに対して最大で64000個作成が可能。 また、1つの表領域に対して、最大で1023個のデータファイルを割り当てることができる。 表領域の種類 SYSTEM表領域 すべてのデータベース操作で必要とされる。 データディクショナリ情報とSYSTEMロールバックセグメントを含む。 非SYSTEM表領域 ロールバックセグメント、一時セグメント、アプリケーションデータ、アプリケーション索引を含む。 表領域の作成 CREATE TABLESPACE 表領域名 DATAFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } [ AUTOEXTEND { OFF | ON [ NEXT サイズ [ K | M ] ] } ] [ MAXSIZE { UNLIMITED | サイズ [ K | M ] } ] [ , データファイル名 { SIZE サイズ [ K | M ] | REUSE }... ] [ MINIMUM EXTENT エクステント最小サイズ [ K | M ] ] [ DEFAULT STORAGE ( [ INITIAL 初期エクステントサイズ [ K | M ] ] [ NEXT 増分エクステントサイズ [ K | M ] ] [ MINEXTENTS 作成エクステント数 ] [ MAXEXTENTS { 最大エクステント数 | UNLIMITED } ] [ PCTINCREATE エクステントサイズ拡大率 ] ) ] [ PERMANENT | TEMPORARY ] [ ONLINE | OFFLINE ] OEMから表領域を作成する場合 Storage Managerで[ 表領域 ]⇒[ 作成 ]を選択 プロパティシートの[ 一般ページ ]で表領域名を入力 [ 追加 ]⇒[ データファイル作成 ]を選択し、データファイルを指定する 記憶領域情報は、プロパティシートの[ エクステント ]ページで指定。 一時表領域 ( TEMPORARY句 ) ソート操作に使用する表領域のことをいう。この領域にはソートセグメントしか格納できない。 一時表領域を作成するには、CREATE TABLESPACE文で、TEMPORARY句を指定する。 OEMで作成する場合は、Storage Managerで表領域を作成するときに、[ 一時 ]ラジオボタンを選択してから、[ 作成 ]をクリックする。 ※PERMANENT句を指定した場合、永続オブジェクトを格納するための表領域を作成する。(DEFAULT値) DEFAULT STORAGE句 表領域内のセグメントで使用する記憶領域の割り当てに影響する。 次にキーワードとパラメータを示す。 INITIAL 最初のエクステンドサイズを指定する。 最小サイズは2データブロック(2×DB_BLOCK_SIZE) デフォルトは5データブロック(5×DB_BLOCK_SIZE) 上記の最小サイズより、小さいサイズを指定した場合、自動的に上記の最小サイズに変更される。 NEXT 2番目のエクステントのサイズを指定。 最小サイズは1データブロック、デフォルトは5データブロック(5×DB_BLOCK_SIZE) 上記の最小サイズより、小さいサイズを指定した場合、自動的に上記の最小サイズに変更される。 また、一時表領域の場合はINITIALと同じ値でなくてはならない。 MAXEXTENTS セグメントに含めることができる、エクステントの最大数を指定する。 最小値は1、最大値はデータブロックサイズにより異なる。 UNLIMITEDを指定すると、エクステントの最大数は2147483645になる。 MINEXTENTS セグメントの作成時に割り当てられるエクステント数。 省略した場合、エクステントが1つだけ割り当てられる。 PCTINCREASE エクステントのサイズ拡大率を指定する。 次のエクステントサイズは、前のエクステントサイズより、このパラメータで指定した割合だけ大きくなる。 デフォルト値は50。最小値は0、最大値は100。 エクステントのサイズは次の計算式を使って計算することができる。 n番目のエクステントサイズ = NEXT × { 1 + PCTINCREASE/100 }n-1 ※計算された値は、5×DB_BLOCK_SIZEの倍数になるように切り上げられる。 MINIMUM EXTENT句 これを設定した場合、指定した値の倍数に相当するエクステントが表領域内のセグメントに割り当てられる。これを設定することで表領域内の断片化を制御することができる。 DEFAULT STORAGE句の、INITIALとNEXTは、このMINIMUM EXTENTで指定された値の倍数でなくてはならない。 記憶領域設定の変更 ALTER TABLESPACE構文を使用することで、設定を変更できる。 ALTER TABLESPACE 表領域名 [ MINIMUM EXTENT エクステント最小サイズ [ K | M ] ] [ DEFAULT STORAGE ( [ INITIAL 初期エクステントサイズ [ K | M ] ] [ NEXT 増分エクステントサイズ [ K | M ] ] [ MINEXTENTS 作成エクステント数 ] [ MAXEXTENTS { 最大エクステント数 | UNLIMITED } ] [ PCTINCREATE エクステントサイズ拡大率 ] ) ] [ PERMANENT | TEMPORARY ] [ ONLINE | OFFLINE ] OEMから記憶領域設定を変更する場合、Storage Managerから[ 表領域 ]を選択し、データファイルを指定して、プロパティシートの[ エクステント ]ページに記憶領域情報を入力する。 表領域のアクセス制御 データベース管理者は、表領域へのアクセスを制御したい場合、ALTER TABLESPASE構文を使うことで、表領域をオフラインにすることができる。 (ただしSYSTEM表領域とアクティブロールバックセグメントが含まれる表領域はオフラインにすることができない。) 表領域をオフラインにすると、ユーザーがその表領域にアクセス出来なくなり、データファイルの移動などの管理作業を行うことができる。 表領域をオンライン/オフラインにする構文 ALTER TABLESPACE 表領域名 { ONLINE | OFFLINE [ NORMAL | TEMPORARY | IMMEDIATE ] }; OEMから表領域をオフラインにするには、Storage Managerで[ 表領域 ]を選択し、オフラインにする表領域を指定して、プロパティシートの[ 一般 ]ページで[ オフライン ]ラジオボタンを選択する。 表領域のデータ更新制御 表領域への書き込み許可/禁止をALTER TABLESPACE構文を使って、変更することが出来る。(ただし、アクティブロールバックセグメントが含まれる表領域は、読み込み専用に出来ない) ※Oracleサーバーより、表領域に属するファイルに対してチェックポイントが実行される。 表領域を読み込み専用にすると、その表領域をCD-ROMドライブなどの読み込み専用メディアに格納することができ、バックアップの必要もなくなる。 表領域へのデータ更新制御は、以下の構文を使用することで行える。 (コマンド実行中にデータの更新が行われないように、制限モードで起動する必要がある) ALTER TABLESPACE 表領域名 READ { ONLY | WRITE } ; OEMから表領域を読み取り専用にする場合、Storage Managerで[ 表領域 ]を選択し、読み取り専用にする表領域を指定して、[ 表領域 ]⇒[ 読み取り専用 ]を選択する。 表領域の削除 表領域と、その内容が不要になった場合、DROP TABLESPACE文を使用して表領域を削除することが出来る。 (実行中に、削除している表領域へのアクセスが発生しないよう、オフラインにする) 表領域の削除構文 DROP TABLESPACE 表領域名 [ INCLUDING CONTENTS [ CASCADE CONSTRAINTS ] ] ; INCLUDING CONTENTS句 表領域内にオブジェクトが含まれている場合に、このオプションを指定し、データを削除する。 CASCADE CONSTRAINTS句 削除する表領域内のオブジェクトを参照する整合性制約も、別の表領域内から削除する。 OMEから表領域を削除する場合、Storage Managerで[ 表領域 ]を選択し、削除にする表領域を指定して[ 表領域 ]⇒[ 削除 ]を選択する。 ※DROP TABLESPACE文を使用しても、制御ファイルのポインタが削除されるだけで、OS上のファイルは削除されない。 データファイル データファイルはOS上の物理的なファイルで、表領域は1つ以上のデータファイルで構成される。データベース管理者は、表領域内のオブジェクトの増減に応じて、データファイルのサイズを変更したり、数を増やしたりすることができる。 表領域を拡大するには データベース管理者は、データファイルを表領域に追加するか、データファイルのサイズを変更する必要がある。 追加する場合 ⇒ ALTER TABLESPACE文に、ADD DATAFILE句を指定する。 変更する場合 ⇒ ALTER DATABASE文に、RESIZE句を指定する。 データファイルの追加 データファイルを表領域へ追加する場合、以下の構文を使用する ALTER TABLESPACE 表領域名 ADD DATAFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } [ AUTOEXTEND { OFF | ON [ NEXT サイズ [ K | M ] ] } ] [ MAXSIZE { UNLIMITED | サイズ [ K | M ] } ] [ , データファイル名 { SIZE サイズ [ K | M ] | REUSE }... ]...; OEMからデータファイルを追加する場合、Storage Managerで[ 表領域 ]⇒[ データファイル ]を選択し、プロパティシートの[ 一般 ]ページでファイル情報を追加する。 データファイルの変更 データファイルのサイズ変更を変更して表領域を拡大する場合には、以下の方法がある。 AUTOEXTEND句を指定して、自動的に行う方法 以下の構文で指定が出来る。 ・ CREATE DATABASE文 ・ CREATE TABLESPACE DATAFILE文 ・ ALTER TABLESPACE ADD DATAFILE文 自動的に拡張されるデータファイルをOEMから追加する場合は、Storage Managerでデータファイルを作成するときに、プロパティシートの[ 自動拡張 ]ページに情報を入力する。 ALTER DATABASE文を使って、手動で変更する方法 ALTER DATABASE文にRESIZE句を使用することで手動で変更することが出来る。 ALTER DATABASE 表領域名 DATAFILE データファイル名 [ , データファイル名 ]... RESIZE サイズ [ K | M ]; データファイルの移動 ALTER TABLESPACE文か、ALTER DATABASE文を使用することで、データファイルの移動が行える。 また、それぞれ何が対象となるかで、異なってくる。 ALTER TABLESPACE アクティブロールバックセグメントや、一時セグメントが含まれていない非SYSTEM表領域のデータファイルを移動するときに使用する。 ALTER DATABASE オフラインにすることが出来ない表領域のデータファイルを移動する際に使用する。 ALTER TABLESPACE文を使用したデータファイルの移動 以下の順序を踏むことで、変更することができる。 表領域をオフラインにする 移動するデータファイルをOSコマンドでコピーする ALTER TABLESPACE文を実行する 表領域をオンラインにする データファイル移動の構文は以下の通り。 ALTER TABLESPASE 表領域名 RENAME DATAFILE ’データファイル名’ TO ’データファイル名’; ALTER DATABASE文を使用したデータファイルの移動 以下の順序を踏むことで、変更することができる。 データベースを停止する 移動するデータファイルをOSコマンドでコピーする データベースをマウントする ALTER DATABASE RENAME FILE文を実行する データベースをオープンする 表領域の領域管理方法 (Oracle8i) Oracle8iからの表領域の領域管理方法として、ディクショナリ管理とローカル管理の2種類がある。 この領域管理方法は、CREATE TABLESPACE文のEXTENT MANAGEMENT句で指定できる。 (後で変更することが出来ない) ローカル管理について ローカル管理とは、各データファイル内のエクステントの割り当て状況をビットマップで表示し、不要なブロックを解放するなどして自ら管理することをいう。 CREATE TABLESPACE文のEXTENT MANAGEMENT句で「 LOCAL 」を指定するとローカル管理となる。 ローカル管理の利点 ローカル管理は、ディクショナリ管理の表領域に比べ、次のような利点がある。 再帰的な領域管理操作の回避 再帰的な領域管理操作とは、表領域内の空き領域をOracleServerが内部的にデータディクショナリに対して発行するSQLのことをいう。 データディクショナリへの競合の軽減 ローカル管理領域では、データディクショナリ表において空き領域を記録しないため、エクステントの割り当てが同時に行われるような場合に、データディクショナリへの競合が現象する。 連続した空きエクステントを結合する必要がない ロールバックセグメントが不要 データディクショナリを更新するためのロールバックセグメントが不要となる。 ただし、表領域内のオブジェクトに対して行われる、トランザクションのロールバックセグメントは作成される。 ディクショナリ管理について エクステント内の表領域を消費/解放するたびに、ロールバックセグメントやデータディクショナリ表の領域を消費/解放する操作が発生する。 (ローカル管理の表領域の場合は、データディクショナリ表が更新されないため、ロールバック情報は生成されず、データディクショナリ表に対する競合が最小限で済む) 領域管理方法の設定 CREATE TABLESPACE 表領域名 DATAFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } EXTENT MANAGEMENT { DICTIONARY | LOCAL | { AUTOALLOCATE | UNIFORM [ SIZE サイズ [ K | M ] ] } }; EXTENT MANAGEMENT句のオプションは次の通り。 オプション 説明 DICTIONARY ディクショナリ管理領域にする場合。 (DEFAULT値) LOCAL ローカル管理領域にする場合。 AUTOALLOCATE ディクショナリ管理割り当てにする場合。 UNIFORM このキーワードが無い場合は、ブロック単位でビット管理される。 指定した場合は、均一サイズのエクステント管理となり、ビットはエクステント単位になる。サイズを指定しない場合は、デフォルトのエクステントサイズ1MBが適用される。 一時表領域 一時セグメントは、初期化パラメータ SORT_AREA_SIZE で指定したメモリ領域を超えるソート操作(ORDER BY、結合など)が行われた場合に必要となる。 ソート専用に指定した一時領域を使用することにより、ソート処理の効率を上げることが可能である。 CREATE TEMPORARY TABLESPACE 表領域名 TEMPFILE データファイル名 { SIZE サイズ [ K | M ] | REUSE } EXTENT MANAGEMENT { DICTIONARY | LOCAL | { AUTOALLOCATE | UNIFORM [ SIZE サイズ [ K | M ] ] } }; ※注意点 ソート専用の表領域なので、永続オブジェクト(表、索引など)を格納することは出来ない。 一時表領域を最適化するために「 UNIFORM SIZE 」は、パラメータSORT_AREA_SIZEの倍数に設定する。 一時セグメントについて ・TEMPORARY表領域のINITIALとNEXTのサイズは常に同じとなる。 ・PCTINCREASEは常に0に設定される。 ・断片化させないために( SORT_AREA_SIZEの倍数+DB_BLOCK_SIZE )でなければならない。 ・いくつかのトランザクションが同一の一時セグメントを同時に共有できる。 (エクステントを使用できるのは1つのトランザクションのみ) 表領域とデータファイルに関する情報の取得 表領域に関する情報は、データディクショナリビュー「 DBA_TABLESPACES 」から取得することができる。 また、動的パフォーマンスビュー「 V$TABLESPACE 」からも取得可能。 データファイルに関する情報は、データディクショナリビュー「 DBA_DATA_FILES 」から取得することができる。 また、動的パフォーマンスビュー「 V$DATAFILE 」からも取得可能。 V$SORT_SEGMENT ・ソートセグメントを含むTEMPORARY表領域に関する情報を表示する。 ・現在のインスタンス用のソート・エクステント・プールの状態を調べることができる。 V$SORT_USAGE 現在のインスタンス内のアクティブな ・ セッションアドレス ・ 表領域 ・ 内容 ・ エクステント ・ ブロック を表示するのに使用する。 ・V$SESSIONとの結合により、アクティブなソートに使用されるエクステント数が取得できる。 DBA_TABLESPACES 列名 説明 CONTENTS 表領域が一時表領域かどうか STATUS 表領域がオンラインかオフラインかどうか V$DATAFILE 列名 説明 ENABLE 表領域が読み込み専用かどうか DBA_SEGMENTS ・データベース内の全セグメントのサイズと記憶領域設定を表示できる。 暗記用。 表領域 Oracleデータベースを論理的にグループ分けする単位 1度に1つのデータベースに属することができる 1つ以上のデータファイルで構成される 1つ以上のセグメントから構成される SYSTEM表領域、アクティブロールバックセグメントが含まれる表領域を除き データベース稼動中にオフラインにすることが可能 読み書き専用、読み込み専用に切り替え可能 データファイル OracleServerが動作しているOSに準拠するファイル 1つの表領域にだけ属することが可能 作成後にサイズを変更したり、動的に拡張することが可能 セグメント 表領域内で特定タイプの論理記憶構造に割り当てられる領域 セグメントは1つ以上のエクステントで構成される セグメントは表領域をまたがることはできない セグメントは同じ表領域に属するデータファイルにまたがることはできる エクステント 1連の連続するデータブロック(Oracleブロック)で構成される セグメントが成長するに従い、エクステントがセグメントに追加される 手動でセグメントにエクステントを追加することができる 異なるデータファイルにまたがることはできない。 (1つのデータファイル内に存在する) データブロック Oracle Serverが割り当て、データベースで使用するI/Oの最小単位。 データベースの作成時、初期化パラメータ DB_BLOCK_SIZEで指定。 不要な入出力を避けるため、OSブロックサイズの倍数にする必要がある データブロックの最大サイズは、OSにより異なる。 既存の表領域に即時に追加領域を割り当てる方法 データファイルを追加する方法 ALTER TABLESPACE ADD DATAFILEコマンドを使用する。 データファイルのサイズを変更する方法 ALTER DATABASE DATAFILE RESIZEコマンドを使用する。 パーティション化 パーティション化とは、頻繁にアクセスされう表などに対して、アクセスの分散を目的として、データをいくつかのパーティションに分けて、別の表領域に配置するというもの。 パーティション・オブジェクト 複数の表領域にまたがることができるオブジェクトのこと。非パーティションオブジェクトとはその逆。 表領域がオフラインになった場合 表領域内のオブジェクトを参照するようなSQLは発行できない。 制御ファイルとデータディクショナリが更新される。
https://w.atwiki.jp/oraclesoa/pages/4.html
Oracle BPEL Process Manager Oracle BPEL Process Manager開発 Tips 開発 WS-Addressingを使った非同期サービスの作成 特別な役割のFault bpelx replay, bpelx rollbackComments Tips 「一方向」プロセスを作成する 非同期処理の要 - 相関セット(Correlation Set)の設定方法 JDeveloper で ローカルのJavaDocを利用する方法 BPEL Designerの設定
https://w.atwiki.jp/atyou/pages/52.html
Oracleデータベースでは、次のユーザーが自動作成されます。 ユーザー名 説明 SYS データベースの管理ユーザー。データディクショナリの実表やビューを所有する SYSTEM データベースの管理ユーザー。ツールや製品で使用される内部表などを所有する SYSMAN OEM(Oracle Enterprise Manager)の管理ユーザー。OEMに接続して管理作業を行う DBSNMP OEMの内部ユーザー。データベースを管理する際、内部的に接続して操作を行う サンプルスキーマ サンプルスキーマをインストールした場合に作成される。HR(Human Resources)による人事データ(EMPLOYEES表、DEPARTMENTS表など)、OE(Order Entry)による受注データ(CUSTOMERS表、ORDERS表など)、SH(Sales History)によるデータウェアハウスデータ(SALES表、PRODUCTS表など)が該当する ユーザーの作成 ユーザーを作成するための基本構文は次のとおりです。 CREATE USER ユーザー名 IDENTIFIED BY パスワード [DEFAULT TABLESPACE デフォルト[[表領域]]] [TEMPORARY TABLESPACE 一時表領域]; ユーザー名以外は作成後に変更することも可能です。ALTER USERコマンドを使用します。 [ ]で囲んだものは省略が可能です。省略時は、それぞれデータベースレベルで設定されたデフォルト値が使用されます。 OEMを使用して新規ユーザーを作成するには、「管理」タブ→「セキュリティ」リージョンの「ユーザー」ページを使用します。完全な新規作成だけでなく、既存のユーザーを使用した類似作成も可能です。ユーザーの作成時に設定できる情報には次のものがあります 設定項目 説明 ユーザー名 必須情報。後から変更できない。ほかのユーザー名やロール名と競合しない名前にする プロファイル リソース制限やパスワード管理に使用するオブジェクトであるプロファイルを指定できる。特に使用しない場合、「DEFAULT」を選択 認証タイプとパスワード 認証タイプに「パスワード」を指定する場合、パスワードの入力は必須 デフォルト表領域 ユーザーがセグメントを作成するとき、明示的に指定しない場合に使用される表領域 一時表領域 ディスクソートなど一時的な領域が必要な場合に使用される表領域 領域割り当て制限(QUOTA) 領域割り当て制限(QUOTA)は、ユーザーがセグメントを作成する場合、対象となる表領域にどこまで領域を使用してよいかを設定するものです。デフォルトでは一時表領域を除き、どの表領域にも領域確保ができないようになっています。 領域割り当て制限を設定するには、Enterprise ManagerもしくはCREATE USER文、ALTER USER文を使用します。 {CREATE | ALTER} USER ... QUOTA サイズ ON 表領域名; サイズに「UNLIMITED」を指定した場合、無制限に表領域が割り当てられます。 また、UNLIMITED TABLESPACEシステム権限が付与された場合、QUOTA設定は無視され、すべての表領域に対して無制限の領域割り当てが行われます。 UNLIMITED TABLESPACEシステム権限は、RESOURCEロールを付与した場合にも同時に付与されます。 リソース使用量の制御 プロファイルは、データベースとインスタンスに対するリソース制限のセットに名前を付けたものです。すべてのOracleユーザーには1つのプロファイルが割り当てられています。明示的にユーザーにプロファイルを設定しない場合、DEFAULTプロファイルが割り当てられます。 DEFAULTプロファイルは、独自に作成するプロファイルの基礎セットとしても使用できます。 注意点として挙げられるのは、プロファイルを使用したリソース制限を行うためにはRESOURCE_LIMIT初期化パラメータをTRUEにする必要があることです。RESOURCE_LIMIT初期化パラメータがFALSEの場合、プロファイルの制限は無効になります。 プロファイルを使用してパスワードを管理することもできます。 パスワード管理に関しては「Oracle Databaseのセキュリティ」の回で解説します。 Oracleデータベースにおける権限には、 システム権限 オブジェクト権限 の2種類があります。 複数の権限をグループ化して管理するためのものとして、ロールがあります システム権限 ユーザーに、データベースに対する特定の操作(テーブル作成、ユーザー作成など)を許可するものです。 システム権限の中には、「ANY」キーワードが含まれているものがあります。 これは、他スキーマにも権限が及ぶことを意味しています。 例えばCREATE TABLEシステム権限では、自分のスキーマにテーブルを作成することができます。 CREATE ANY TABLEシステム権限の場合はこれに加え、他スキーマとしてテーブルを作成することもできます。 システム権限を付与するには、次の構文を使用します。 GRANT 権限名 TO {ユーザー名 | PUBLIC | ロール名} [WITH ADMIN OPTION] ADMIN OPTIONを使用すると、付与されたユーザーは、別のユーザーにその権限を付与できるようになります。 データベースの起動や停止を行うために、SYSDBA権限とSYSOPER権限という特別な権限があります。 権限 説明 SYSDBA 起動、停止、データベースの作成、リカバリなどとすべてのデータベース権限 SYSOPER 起動、停止、基本的なリカバリのみ。データディクショナリなどへのアクセスは不可 オブジェクト権限 特定のオブジェクトに対する操作(他スキーマのオブジェクトへのアクセスなど)を許可するものです。 ユーザーは、自分のスキーマへのアクセスはすべて許可されています。ほかのスキーマにアクセスするためには、ANYキーワードを含むシステム権限、もしくはオブジェクト権限が必要です。 オブジェクト権限を付与する場合、次の構文を使用します。 GRANT {権限名 | ALL} ON オブジェクト名 TO {ユーザー名 | PUBLIC | ロール名} [WITH GRANT OPTION] ALLを使用すると、対象となるオブジェクトタイプに応じたすべての権限が付与されます。 GRANT OPTIONを使用すると、付与されたユーザーは、別のユーザーに対してその権限を付与することができます。 オブジェクト権限を付与できるのは、オブジェクトの所有者とWITH GRANT OPTIONで権限を付与されたユーザーです データベース管理者でもオブジェクト権限を付与できません スキーマ オブジェクトが誰のものかあらわすもの。名前空間。 Oracleデータベースの場合、Oracleユーザーを作成すれば、そのユーザー名と同じスキーマが自動的に作成されます。 オブジェクトは、「スキーマ名.オブジェクト名」、つまり、「誰(スキーマ)の何」で管理される。 例) SCOTT.EMP ALLEN.EMP 【 期限切れパスワードについて 】 ユーザー・アカウントが期限切れパスワードの場合、データベース の接続時に、パスワードの変更要求が行われます パスワードを指定すると期限切れパスワード(EXPIRED)のチェックは、 自動的に解除されます 《参考》ユーザー・アカウントがロック(LOCKED)の場合、ユーザーは、 データベースには、接続できません。データベース管理者が、ロック を解除すると、データベースに接続できるようになります
https://w.atwiki.jp/shuei/pages/246.html
以下の内容は、Oracle9iに即しています。 Oracle Server Oracle Universal Installer Oracleのインストール・アップグレード・削除 サイレントモード(非対話式) Oracle Database Configuration Assistant DBの作成・削除または変更 Oracle Enterprise Manager 複数のデータベースの管理運用を行う統合ツール OEMのアーキテクチャ 第1層 JavaベースのOEMコンソール・管理アプリケーション 第2層 OMS + OMEリポジトリ 第3層 インテリジェントエージェント・Oracle サーバー OMEリポジトリ DB上の表で構成 OEMクライアントに依存しないサーバー直下のDB OEMのコンポーネント Instance Manager / Schema Manager / Security Manager / Storage Manager / SQL Worksheet SQL*Plusのみの起動 sqlplus /nolog Oracle インスタンスの管理 データベースの状態 NOMOUNT / MOUNT / OPEN の3つの状態がある nomount 初期化パラメータの読み込み・インスタンスの開始・トレースファイル・ALERTファイル mount 制御ファイルのオープン (archive_logやデータベース回復) open データファイル・REDOログファイルのオープン セッションを終了しても、OSプロセスは終了しない Windows では、Oracle DBがサービスとして動作、起動時はOracleService SID が開始している必要 shutdown abort は、他の停止モードでDB停止できない場合に使用 初期化パラメータ 確認 show parameter / v$parameter PFILEはテキストで編集可能だが、有効にするためOracleサーバーを再起動 永続パラメータはOracle 9iの新機能 SPFILE は、参照できるが、手動で変更できない alter system文を使用 create spfile コマンドは、インスタンスが停止していても sysdba権限で発行できる alter system set -=- scope=( memory / spfile / both ) 基本的に動的なパラメータだが、インスタンス再起動を要するパラメータもある 制限モード restricted session権限をもつユーザーのみがDBにアクセス可能 制限モードへの入り方 startup restrict / alter system enable restricted session alter文の場合 現行セッションを制御不能 よってalter system kill session ID,serial ; DBメンテナンスまたは大量のエクスポート・インポート 現行インスタンスが制限モードかどうかは、v$instanceで確認 トレースファイル サーバーとBGプロセスが検出した内部エラーを書き出すファイル BGプロセスで発生した問題に関する詳細な情報が含まれる 異常な動作やクラッシュが発生した場合には、管理者は、まず参照すべし ネットワークプロセスを含めてリスナープロセスなどが、生成する場合もある ユーザーがコマンドを発行するか、パラメータを指定することで明示的に指定することも可能 アラート(ログ)ファイル DBの作成以降、DBシステムに対して行われた変更情報を保持 DBがいつ作成されたか? DBがどの端末からいつ起動・停止されたか? データファイルやREDOログファイルがいつ作成・削除されたか? ログスイッチに関する情報、ログ順序番号など 表領域の作成・新規データファイルの表領域への割り当て エラーレポートが記録 内部エラー・ブロック破損エラー・デッドロックエラー エラーに関しては、トレースファイルと比べ重要な情報だけが書かれる log_checkpoints_to_alert=true によってCKPTに関連付けられる トレースファイル・ALERTファイルの保存先 background_dump_dest ALERTファイル・BGトレースファイル user_dump_dest ユーザートレースファイル Oracle-Managed Files ( OMF ) Oracle 9iの新機能 db_create_file_dest データファイルのデフォルトディレクトリ db_create_online_log_dest_n REDOログファイル及び制御ファイルのデフォルト nは多重化によるメンバ・番号 OMFで作成された表領域は、削除するとOSファイルも削除 and datafile オプション不要 Jserverコンポーネント Javaプログラムユニット プロセス パスワードファイル認証 orapwdユーティリティを使用してパスワードファイルを作成 初期化パラメータ remote_login_passwordfile=exclusiveに設定 grant sysdba to username; でパスワードファイルにユーザーを追加 admin optionは使用できない connect username/password@db as sysdba; で接続 v$pwfile_usersビューで、どのユーザーがsysdba/sysoperを持っているかを確認 exclusiveのモードが、最もセキュリティレベルが高い ユーザープロセス SQL*PlusなどでOracleサーバへの接続を求めることで生成 構文チェック・アクセス権チェックを経て、接続が確立 セッション確立後は、ユーザープロセスはUPIを通して、サーバープロセスにアクセス サーバープロセス DBへの接続が確立すると生成 ユーザープロセスからの問い合わせや更新命令を受け取り、Oracleインスタンスとやり取りを担う 各サーバープロセス毎にPGAが割り当てられ、 ソート領域・スタック領域・セッション情報・カーソル状態などが格納 ユーザープロセスの要求に対し、OCIを通じてSGAを使いながらOracleサーバと通信 要求に対する結果をユーザープロセスに戻す ライブラリキャッシュ・DDキャッシュを使いながら、SQL文を解析 データ操作に必要なデータをDDキャッシュやDBバッファキャッシュに格納 キャッシュへのバッファリングは、LRUアルゴリズムにより更新頻度の高いものが残る 共有サーバー構成 共有サーバーの場合は、ディスパッチャプロセスがサーバープロセスへのキューイングを行い PGAに格納されていたセッション情報は、SGAの共有プールへ格納される パラレルサーバーモードでは、複数インスタンスで共有のDBに接続する CKPT データファイルヘッダー,制御ファイルへのチェックポイント情報の書き込み ログスイッチ / alter system checkpoint / shutdown (abort以外) backup / offline log_checkpoint_interval / log_checkpoint_timeout / fast_start_io_target / fast_start_mttr_target トランザクションとは一致していない DBWn DBバッファキャッシュ上の使用済みバッファをデータファイルへ書き込む CKPT / DBW0タイムアウト(3秒) / 使用済みバッファ数のしきい値を越えた Snnnがクリーンなバッファを発見できなかた時 LGWR 回復処理のためにデータベースへの変更を記録 バッファ使用が全体の1/3 / 3秒おき / DBWRのタイミング / トランザクションがコミット 現行ロググループが一杯になり別のグループへ書き込みを開始する事をログスイッチという log_archive_start=trueであれば、ARCHIVELOGモードでの運営となり、ARCHが発生 PMON ユーザプロセス障害後にリソースをクリーンアップ ユーザー処理が何らかの理由で中断されてしまった場合に稼動 DBバッファキャッシュのクリーンアップやトランザクションバックアウト(暗黙ロールバック) 3秒おきに定期的に活動 SMON インスタンスリカバリの実行 インスタンス起動時にデータの整合性を回復させる データファイルの空き領域結合・一時ファイルセグメントの割当て解放 一時セグメントにおいてソート作業後のクリーンアップ SELECT文 と DML文の流れ 解析ツリーまたは実行計画を作成する場合 解析済みのSQL文のコピー・未解析のSQL文のコピーがライブラリキャッシュに残っているか? 発行されたSQL文が有効化どうか検査され、有効な場合C言語へ展開される 参照している列や表が存在するか? → 参照先のロックを行う (DD定義・表定義・列定義) SQL文を実行しようとするユーザーは、適切な権限をもっているか? 実行に最適である方法によって、解析ツリーまたは実行計画をライブラリキャッシュに作成 解析ツリーまたは実行計画が存在する場合 サーバープロセスは必要なデータをデータブロックとUNDOセグメントよりDBバッファキャッシュに入れる SELECT文の場合、文実行によってOracleから返されたデータはカーソルに保存され、 行ごとにバインド変数に配置され、ユーザープロセスに返される DML文の場合、変更するデータに暗黙的にロックがかけられ、 行っているDML操作の結果生成されたREDO情報とデータ変更情報がREDOログバッファへ保存 指定の変更をDBバッファキャッシュ上でデータに加える DML文の発行後、ユーザープロセスはREDOバッファに変更情報がREDOエントリとして格納 更新・削除の場合、新旧両バージョンのデータをそのトランザクションで取得されたUNDOセグメントへ 挿入の場合、PCTFREE領域にかからない十分な領域があるブロックを取り出し、それらを配置する これらの処理によりDBバッファキャッシュ内のデータブロックとUNDOブロックには「使用済み」マーク 実行計画はライブラリキャッシュにある期間だけ保存される バッファ内のデータを格納する トランザクションを確定する COMMIT文が発行されると、ユーザープロセスによりREDOエントリが作成され、 読み取り一貫性を保証する為のSCNと共にREDOログバッファに書き込まれる LGWRによってバッファの内容はREDOログファイルへフラッシュされ、トランザクションが終了 コミット完了がユーザープロセスへ 表・行ロック及び対応するセグメントのロックの解除 更新作業中のインスタンス障害 遅延書き込みの場合や更新中の障害など、commitしても更新データが反映されていない場合がある そのような場合の為に、REDOログファイルに更新データが書き込まれている インスタンス再起動時にSMONが自動的にcommit済みの更新データをデータファイルに適用する データベースの作成 前提となるもの 複数ユーザー環境でOracleDBを稼動できるだけのCPU・メモリ・ディスク容量が備わっているかどうか 別個に制御するディスクリソースが3つ以上あることが推奨 パラメータとして、db_name / controlfiles / db_block_size を指定 環境変数 oracle_base / oracle_home / oracle_sid / ora_nls33 / ld_library_path を設定 OFAに準拠し、実運用で避けられない問題に関して標準対処が可能にする ホストで稼動中の他のOracleDBの停止及びバックアップ Oracleで推奨するOSパッチをマシンにインストールする OFAの使用 データファイルを他のファイルと簡単に区別できるようにする 制御ファイル,REDOログファイル,データファイルを簡単に識別できるようにする ファイルを異なるディスクやディレクトリに分類することで、同じマシン上の複数のORACLE_HOMEの管理を容易にする データベースファイルが個別のディレクトリやディスク上に常駐できるように考えることでファイル間のディスク競合が削減されパフォーマンスを向上させる パラメータファイルの準備 作成前にinit.oraファイルを作成する db_name ホストマシンにおけるDBのローカル名をdefaultでなく一意な名前に変更 db_domain ネットワーク内におけるDBのドメイン名 worldにするかinetドメイン名 db_block_size 標準ブロックサイズを指定 control_files DB作成時に限り、指定したファイルがない場合自動作成 作成時以外の場合は起動せず db_cache_size バイト単位でバッファキャッシュのサイズを指定 log_buffer バイト単位でREDOログバッファのサイズを指定 undo_management autoに設定することでUNDOセグメント管理が自動化 undo_tablespace 自動管理の場合のUNDO表領域の名前を指定 processes Oracleに接続できるプロセスの数 BGプロセスとサーバープロセスを含む DB作成後 init.oraファイルをベースにspfileを作成 create spfile from pfile = ... ; 初期化パラメータファイル読み込みの優先順位(一番初めのDB作成時には、init.oraのみのはず) STARTUPコマンドのPFILEオプション spfile SID .ora spfile.ora init SID .ora SPFILEの変更は、alter system set -=- scope= spfile / memory / both ; 手動作成 作成前に実行する手順 init.oraファイルに正しいDB名・正しい制御ファイル名が参照されていることを確認 background_dump_dest / user_dump_dest / core_dump_dest / utl_file_dirが実在することを確認 sysdbaユーザでnomountモードでOracle インスタンスを起動させる create database 文の実行 default temporary tablespace句を省略すると、default一時表領域がsystem表領域になってしまう undo tablespace句を省略すると、undo_management / undo_tablespace指定で、自動作成されるらしい reuse 句を使用しない場合は、新規作成 使用する場合は実在しなければいけない default temporary tablespace句には、datafile でなくtempfileを指定する autoextend句により、datafile文を自動拡張に設定 DB作成時に作られるもの 管理者ユーザーsys とsystem SYSTEM表領域・SYSTEM UNDO 表領域・物理ファイル・内部基本表(sql.bsq) sysユーザー DD基本表とDDV・v$の所有者 systemユーザー Oracleツールが必要とする表の所有者 create database文の注意点 system表領域以外にdefault temporary tablespace / undo tablespace を作成可能になった ( 9i ) OMF により、datafile 及び logfile はファイル名を指定する必要なし REDOログファイルに関するオプションは制御ファイルのサイズに影響 maxlogfile ロググループの最大数 / maxlogmembers / maxloghistory / maxdatafiles / maxinstances Optimal Flexible Architecture ( OFA )標準 インストール時のディレクトリ構成の決定方法 /$oracle_homeの下に置かれる DB作成後、変更不可のパラメータ キャラクタセット・標準ブロックサイズ 制御ファイル・REDOログファイルの多重化 障害に備えて データファイルは、データの特性・表領域の用途によってファイルを分ける 有効なデータファイル名は、v$datafile 有効なREDOログファイルは、v$logfileで確認可能 DBテンプレート Oracle 9iの新機能 提供テンプレートか既存のDBから作成 構造のみ・データ込 DB作成後のスクリプト実行 sql.bsq DDVの実表を作成 catalog.sql sysユーザーで実行 DDV或いは動的パフォーマンスビューの作成及びそれらのパブリックシノニムを作成~ catproc.sql PL/SQLの環境を構築 pupbld.sql SQL*Plusの製品情報を作成 systemユーザーで実行 cat*.sql カタログ情報・データディクショナリ情報 dbms*.sql データベースパッケージ仕様部 prvt*.sql ラップされたDBパッケージコード utl*.sql ユーティリティ用のビューと表 データディクショナリの利用 USERビュー 現在のユーザーが所有しているオブジェクトの情報 ALLビュー 現在のユーザーがアクセス可能なオブジェクトの情報 DBAビュー データベースの全てのオブジェクトの情報 sysdba またはselect any dictionary / select_catalog_role を付与されたユーザ DDV とv$ の概要 dictionaryビューまたはdict_columnsビューを検索 通常のDDV とv$は、DML不可 ただし監査に関するsys.aud$表はDML可能(必要) DDL発行・DMLにより新しく領域が割り当てられたときにDDVが更新 NOMOUNT時、メモリから情報を生成する v$parameter / v$sga / v$option / v$process / v$session / v$version / v$instance MOUNT時、制御ファイルから情報を生成する v$thread / v$controlfile / v$database / v$datafile / v$datafile_header / v$logfile v$fixed_tableビューを検索すると、全ての動的パフォーマンスビューを表示できる v$instance / v$sga nomount段階で取得可能 v$thread 現在のREDOロググループ・グループ数・順序番号 v$parameter 現在のセッションパラメータ v$system_parameter 現在のシステム値の表示 v$controlfile_record_section 制御ファイルの異なるセクションに関する情報 制御ファイルの管理 制御ファイル マウント時にパラメータファイル参照で読まれる 制御ファイル更新のタイミング 表領域情報はデータファイル,REDOログファイルを追加,削除したときに更新 データファイルとREDOログファイルの名前と場所はそれらの追加変更削除時に更新 REDOログファイルの履歴と現在のログ順序番号はREDOログファイルスイッチ時に記録 アーカイブログの場所とステータスはアーカイブ時に記録 バックアップの場所とステータスはRecoveryManagerにより記録 チェックポイント情報はチェックポイント実行時に記録 制御ファイルに格納される情報 データベース名(DB_NAME)と識別子(DBID) (不変) データベース作成時のタイムスタンプ (不変) 表領域名 データファイルとREDOログファイルの名前と場所 現行のREDOログファイルのログ順序番号(現行のものだけ) チェックポイント REDOログファイルのアーカイブ情報 バックアップ情報 制御ファイルのサイズに影響するパラメータ create database文で指定するログに関するパラメータ maxlogfiles / maxlogmembers / maxloghistory / maxdatafiles / maxinstances 制御ファイルの多重化 制御ファイルはmount中常に更新が行われているので、DB停止後にOSコピー PFILEの場合、停止後コピー、そしてPFILEを編集、起動 SPFILEの場合、alter system set control_files= , ... scope=spfile; 停止後コピー、起動 制御ファイルの多重化は、ダウンタイムを極力なくす為であって、障害時にはインスタンス再起動が必要 制御ファイルのバックアップ alter database backup controlfile to (ファイル名) 制御ファイルの再作成用のスクリプト alter database backuup controlfile to trace 制御ファイルに関する情報の取得方法 show parameter / v$controlfile / v$parameter / v$spparameter / v$controlfile_record_section REDOログファイルの管理 REDOログファイル 各SQL文実行、或いはトランザクション確定にあたって、変更内容が格納される DBに何らかの障害が発生した場合に備え、回復に必要な変更履歴を保持するファイルである トランザクション識別子・物理的変更位置・変更後の値などがある ログスイッチによる発行されるログ順序番号が、データ/制御ファイルのヘッダに格納され、整合性を保つ log_archive_start=true, log_archive_destを指定により、ARCHプロセスが起動 ユーザーシステムのトランザクション量やDMLのタイプにより、サイズはまちまち v$sysstatのredo sizeにより現時点までの累積サイズを確認 ランダムアクセスであるデータファイルとは異なり、順次書き込みであり更新中の読み込みは発生しない インスタンスの回復にはREDOログファイルが必要 LGWRがREDOログファイルに書き込む REDOロググループは同一サイズ・同一ログ順序番号をもつログメンバで構成 DBWRのタイミング DBバッファキャッシュよりDBファイルへ書き出す CKPT / DBW0タイムアウト / 使用済みバッファ数のしきい値を越えた Snnnがクリーンなバッファを発見できなかた時 LGWRのタイミング REDOログバッファよりログファイルへ書き出す バッファ使用が全体の1/3 / 3秒おき / DBWRのタイミング / トランザクションがコミット ログスイッチ 現行ロググループが一杯になり別のグループへ書き込みを開始すること 手動でのログスイッチ alter system switch logfile; CKPT発生 - ロググループ削除前に必要 CKPTのタイミング 効用:DBWR・制御ファイルの更新・データファイルのヘッダ更新 ログスイッチ / alter system checkpoint / shutdown (abort以外) / backup / offline / 以下の初期化パラメータ log_checkpoint_interval / log_checkpoint_timeout / fast_start_io_target / fast_start_mttr_target ALERTファイルへの書き出し指定 log_checkpoints_to_alert=true log_archive_start=true でアーカイブの自動実行・手動実行を設定 手動 alter system archive all DBWRとの競合のため、データファイルとログファイルは別ディスクへ ARCHとの競合のため、アーカイブログファイルとログファイルは別ディスクへ ログファイルの移動・改名 DB停止後にOSコピー その後alter database rename to REDOロググループの削除 alter database - drop logfile REDOロググループが削除できない場合 REDOロググループ削除によってグループ数が1になる ロググループがアクティブな場合 アーカイブされていないロググループである場合 ( ARCHIVELOGモード ) REDOログメンバの削除 alter database - drop logfile member REDOログメンバが削除できない場合 メンバーが所属グループ最後の有効メンバである アーカイブされていないロググループのメンバーである場合 ( ARCHIVELOGモード ) ロググループの再初期化 メンバーが全て破損している場合 alter database - clear [unarchived] logfile アーカイブされていないロググループで破損している場合に有用 アーカイブに関する情報 archive log list / v$database / v$instance ロググループの状態に関する情報 v$log のstatus列 unused / current / active (回復に必要) / inactive (回復に不要) ロググループのファイル・ログメンバーの状態に関する情報 v$logfile のstatus列 invalid / stale (不完全) / deleted / null (使用中) 表領域とデータファイルの管理 表領域の管理 extent management句を省略するか(デフォルト)、local指定で、ローカル管理になる 表データを格納する表領域には、OFA準拠でDATAと名づける create undo tablespace文では、datafile以外の指定ができない create temporary tablespace文では、tempfileであったが、 create tablespace文で、一時表領域を作る場合は、datafileにして最後にtemporaryオプション デフォルトであれば、ローカルの永続表領域の指定となる 永続指定から一時指定に変更をする場合、永続オブジェクトを含んではいけない 表領域のオンライン・オフライン化 各表領域はそれぞれ個別にオンライン・オフラインに設定することが可能 これによりDBを止めずにDBのバックアップ・リカバリ操作を表領域単位で行える オフラインで設定しなければならない設定は、 アプリケーションのメンテナンスや復旧作業・大規模なデータのインポートなど 影響範囲と一般ユーザーからの更新を最小限に抑える オンラインでのメンテナンスが可能な項目として、 オンライン索引(再)作成 トランザクション処理が行われている表に対して、9iよりあらゆる種類の索引に対応 オンライン索引構成表の(再)作成 9iよりオーバーフロー・領域を伴った移動が可能になり、オンライン操作が拡張 オンライン表再定義 9iよりオンラインのまま、表の再定義が可能になった オンラインオブジェクト構造の検証 表:データブロックと行の整合性 パーティション:パーティションと行の整合性 索引:データブロックの整合性 検証 analyze table / index - validate structure; 整合性を保証する cascade句も指定できる 索引の整合性についてはindex_statビューを参照する analyze table - estimate statistics; 表に対する一連の統計情報が見積もられる analyze table - compute statistics; 表に含まれる全ての行に基づき表に対する統計情報を計算 dba_tablesビュー の chain_cnt列に統計情報、特に連鎖行・移行行の個数が含まれる alter index - monitoring usage; 索引使用の監視するメカニズムを有効にする v$object_usageビュー デフォルトの表領域 system表領域 デフォルトの一時表領域 default temporary指定の表領域 論理構造の枠組み 表領域 > セグメント > エクステント > データブロック エクステントはデータファイルをまたげない 表領域の作成 create tablespace文 一時表領域の作成 create temporary tablespace文 表領域の種類 permanent と temporary (ソート操作に使用する一時セグメントのみを格納) 表領域の管理 ディクショナリ管理とローカル管理 extent management (dictionary / local) ディクショナリ管理 default storage句を使用 エクステントをDDで管理 UNDOやDDの更新あり extent management dictionary [default storage ( - )] ローカル管理 エクステント割り当てがビットマップ表示 自ら管理 領域管理に関するDDアクセスがなくDD更新が減少 ビットマップによる空き領域追跡・割り当て・エクステント結合不要 extent management local [uniform size - / autoallocate] default storage句 initial / next / pctincrease / maxextents / minextents minimum extent句 ディクショナリ管理の表領域作成時に設定 断片化を制御 表領域のオフライン化 alter tablespace - offline [normal / temporary / immediate] CKPT発生 常に更新されるDDを含む表領域 system表領域・UNDOセグメントや一時セグメントを含む表領域は常にオンライン 読み込み専用表領域 alter tablespace - read (only / write) CKPT発生 書込み禁止であっても dropは可能 ポインタの移動だけであるから 表領域のサイズ変更 alter tablespace - add datafile / alter database datafile - resize / autoextend on データファイルの位置変更 alter tablespace - rename datafile to / alter database rename file to デフォルト一時表領域の指定構文 alter database default temporary tablespace - 表領域・データファイルに関する情報の取得 dba_tablespaces / dba_data_files / dba_temp_files / v$tablespace / v$datafile drop tablespace のオプション including contents [and datafiles] [cascade constraints] 表領域のオフライン化 通常のSQL文はオブジェクト参照不可 表領域のトランスポート ソースはro・ブロックサイズとOSは同じにすべし・ビットマップ移動不可 compress=Y エクスポート時にセグメントが現在使用している全ての合計領域をまとめる 記憶領域構造 セグメントの管理 オブジェクトを作成した時に作成されるオブジェクト格納用の領域、表領域内に定義 ・表:通常のデータの格納方法 ・パーティション表:表の中を分割し、個々のパーティションを行分割しセグメント化したもの ・クラスタ:表を格納するためのセグメント クラスタキーに基づいてブロックにデータを格納(ディスクI/Oの減少) ・索引:指定されたキーに基づいて表内の行の位置を参照するエントリを格納するセグメント ・索引構成表:索引構造の中の表の索引列を除くすべてのデータを格納する データを索引ツリーから検索できるので表への参照はない(パフォーマンス向上) ・パーティション索引:パーティション化された索引(パフォーマンス向上とメンテナンスの容易性) ・UNDO:トランザクションの前のデータを格納 ユーザーがcommitをする事により、トランザクションで使用されてきた領域が開放 UNDOセグメントの自動管理は、segment space management auto句必要なし 表領域で管理 ・一時:メモリ上でソートが完了せずディスク上で必要になったときの中間結果を格納する 一時セグメント・UNDOセグメントでは、全て同じサイズのエクステントをもつ initial=next 一時セグメントのサイズは、sort_area_sizeの倍数+db_block_size(?)をしようすべし 一時セグメントは、order by 句・create index文によりソート処理に使用される 一時表は、一時セグメントに格納され表として参照できる 領域は共有だが操作は個別に行う ・LOB:LOB列の値を格納 表にはロケータ(LOBデータの位置へのポインタ)のみを含める 表と異なる表領域に格納可能 ・ネストした表:別のセグメントに格納された表を1つのフィールドに対応させるもの ・bootstrap:DBがオープンにされるときにデータディクショナリキャッシュを初期化するためのセグメント セグメントヘッダーブロック 各セグメントの第1エクステントの第1ブロックは、セグメントヘッダーとして獲得される セグメントのタイプ情報 どのようなセグメントなのか? エクステント情報 領域をどのように獲得しているか? フリーリスト どのブロックが飽き状態であるか? ブロックヘッダにある空きリストとは別 エクステントの割り当てタイミング 表や索引やUNDOセグメントを作成したり拡張したとき エクステントの解放タイミング 削除・変更・切り捨てが行われるとき エクステントの結合 alter tablespace - coalesce / 新エクステント生成時自動 / SMONによる自動 行連鎖 挿入時に一行のデータが大きすぎる場合、単一行が複数ブロックにまたがる PCTFREE大 行移行 更新時にPCTFREEがたりなくなったとき、行のデータごと別ブロックへ移動 代わりにROWID格納 PCTUSED ブロック内の削除された領域に関して考慮必要 削除頻繁なら小さく 大きいと全件検索に有利(満杯に近い) PCTFREE 更新用領域 更新によってレコード長が長くなる場合 今後挿入されるなら小さく 大きいと全件検索に不利 PCTFREE / PCTUSED セグメントレベルで設定・表領域のパラメータは影響しない ブロックサイズからブロックヘッダーをのぞいた部分を100%として算出 dba_tablespaces 表領域の情報 dba_data_files セグメントに割り当てられたデータファイルの情報 dba_tables 連鎖行・移行済みの行を検出 dba_free_space 使用可能エクステント・使用可能ブロック数・表領域・ファイル情報 dba_segments 表・索引などオブジェクトが使用している領域(セグメント)に関する情報 エクステントの拡張なども dba_extents エクステントに割り当てられた領域に関する情報 所在・数・大きさなど 割り当てられたエクステントはdba_free_spaceから消される セグメント領域管理 パラメータinitrans (初期トランザクションスロット) / maxtrans (最大) 自動セグメント領域管理 ローカル管理の永続表領域のみ LOB型格納不可 セグメントに指定したPCTUSED / FREELISTS / FREELIST GROUPSは無視される 表を作成する場合のPCTUSED句も無視 断片化のしやすさ 一時セグメント > UNDOセグメント >> その他 ローカル管理表にするか、エクステントの数を少なく・大きくすると改善 記憶領域パラメータの優先順位 minimum extents句・uniform size句が最大 次がセグメントレベル・表領域レベル・Oracleサーバデフォルト 一時表領域 一時セグメントを格納するための表領域 一時セグメント 一次ファイルのみ格納可能な一時的なセグメント サイズはsort_area_sizeの倍数に 一時ファイル 一時表領域を構成するデータファイル 一時表 temporary指定の表オブジェクト 適切なエクステントのサイズ db_file_multiblock_read_countの倍数に さらにOSのI/Oサイズの倍数 UNDOデータの管理 UNDOセグメント SQL文毎の読みとり一貫性を保証するため トランザクション終了時に変更前データを格納 複数のトランザクションが同時に一つのUNDOセグメントへアクセス可能 一つのトランザクションは、一つのUNDOセグメントへのみアクセス可能 UNDO表領域を切り替える場合、トランザクションが終了するまで「待ち」が発生 読みとり一貫性の有効・無効 set transaction isolation ( read only / level serializable ) UNDOセグメントの用途 トランザクションのロールバック・回復 読みとり一貫性 自動UNDO管理に必要なパラメータ undo_management=(auto/manual) / undo_tablespace= / undo_suppress_errors / undo_retention(保存期間・秒) 変更後は、spfile指定であってもインスタンス再起動が必要 UNDO表領域の作成・変更・削除 削除の前に他の表領域を指定する create undo tablespace / alter system set undo_tablespace= / drop tablespace UNDOセグメントに関する情報 dba_rollback_segs オフラインなものを含めたUNDOセグメントの情報 v$rollname / v$rollstat 現在インスタンスが使用しているUNDOセグメントの情報 v$undostat インスタンス実行中にUNDOブロックがどれくらい生成されたか UNDO表領域の切り替え アクティブならばpending offlineとなる v$session / v$transactionでユーザーをチェック UNDO表領域の使用量の制限 DBリソースマネージャーによる 表の管理 DBブロック内の行データの格納形式 上からヘッダー・行データ領域(PCTFREE・INSERT可能データ領域) ヘッダー ブロックヘッダ・表ディレクトリ・行ディレクトリ(ブロックに格納されている行の情報)が格納 ブロックヘッダ SCNやトランザクションスロット・ブロックアドレス 行データ 行ヘッダ(列定義)と列データ(列の長さ・列の値) 列の長さ 250以下または連続するnullでは1バイト 251以上は3バイト 列の値 null値は格納されない TIMESTAMP型 DATE型の拡張機能で小数点以下9桁の時間と日付を格納 LONG型とLOB型 共に巨大なオブジェクトを格納するため 両者に互換性なし LOBセグメント 巨大ファイル用 ライン外のLOBオブジェクト用 ROWID型 データの格納場所を表す疑似列ROWIDから行アドレスを受け取るための18文字データ型 オブジェクト番号・相対ファイル番号・ブロック番号・行番号 行の特定に使用 行移行など dbms_rowid rowid型の変換用パッケージ ROWID型の使用のされ方 拡張ROWID 10byteの記憶領域、BASE64コードによる18文字から構成 データベース内の行を一意に識別するもの データオブジェクト番号:データベース内で一意な番号 相対ファイル番号:表領域内の各ファイルに対して一意な番号 データブロック番号:ファイル内で一意な番号 行番号:ブロック内で一意な番号 データオブジェクト番号によってどの表領域にセグメントがあるかを認識する 必要があるパーティション表のパーティシDa9ン索引で使用 制限付きROWID 6byteの記憶領域、8.4.4の16進法で表示~ データブロック番号 行番号 絶対ファイル番号 データオブジェクト番号を持たないため、非パーティション表の非パーティション索引で使用 コレクション型 VARRAY型・TABLE型 (ネスト表) など配列を扱う PL/SQLでは主要なデータ型 表の作成・変更・切り捨て・削除 create table / alter / truncate / drop 高水位標 truncate - reuse storage / drop ではリセットされない truncate - [drop storage] / alter table - deallocate unused でリセット 表の再構成 export/import や create table as select を使用しないでも、alter table move文を使用できる tablespace句 移動先の表領域を指定、省略すると同じ表領域の新規セグメントへ storage句 エクステント構築情報を再設定できる ローカル管理表では設定できない loggingオプション 移動による変更をオンラインREDOファイルへ書き込むことができる 表の移動中には、参照ができるが、変更ができない 列の削除 alter table - drop column - / alter table - set unused - - drop unused column 未使用マーク dba_unused_col_tabs 削除途中の表 dba_partial_drop_tabs 記憶領域パラメータとブロック領域管理パラメータの設定 alter table - storage () / alter table - allocate extent ( size - datafile ) 表用の表領域 表の同時使用率が高い用途 表の表領域はパーティション化でき、IO競合を削減 一時表 索引・ビュー・トリガーを作成 定義のみのエクスポート・インポートなど 領域管理操作の回避・空き領域の競合軽減・結合不要(ビットマップによる自動追跡) エクステント自動・UNDO不要 create global temporary table - on commit (delete トランザクション中/ preserve) rows で作成 ソートセグメント 各エクステントは1トランザクションずつ オブジェクトの作成日 表・索引の作成・DDL発行に関して dba_objectsのcreated / last_ddl_time 統計処理 analyze table - compute statistics 正確な連鎖行数などのすべての行での統計生成 結果 dba_tablesのchain_cnt列 検出された行数が記録 analyze table - estimate statistics - 行のサブセットに基づいた統計生成 索引の管理 索引の種類 B*Tree 各索引列の値とROWIDのペアを昇順ソートしてツリー構造に格納 カーディナリティが高いOLTP環境で動的な表に索引を作成するのに適している ビットマップ カーディナリティ(選択性)の低い列に適した索引 大規模でかつ静的な表で使用されるデータウェアハウス(DSS)環境に適している 複雑な計算(AND,OR,NOT,複合)処理もビット演算により効率的に行える 索引を定義した列を更新するときはビットマップセグメントレベルのロックが行われるためオーバーヘッドが大きくなる CREATE BITMAP INDEXコマンド 逆キー(B*Tree) B*Treeの構造での索引列のバイトを逆にソートして格納 索引への変更が少数のリーフブロックに集中する場合に適している where文で、X=5のように等号比較が使用している場合に有効で、between指定ではメリットなし パラレルサーバー環境におけるパフォーマンス向上にも通ずる 降順索引(B*Tree) 降順で検索を行う場合に有効 create index - on emp(salary desc);のように作成時に指定 同様に連結索引として、create index - on emp(dept asc, salary desc);のように作成時に指定 ファンクション索引 列に対する関数や式を使用して索引列の値を事前計算して格納 B*Tree索引、ビットマップ索引として作成 索引構成表(索引ではない) 主キーのみで検索を行う場合は、create table文にorganization index句をつけ索引構成表を作る 必要領域が少なく、主キーのみで高速な検索が可能 2次検索はできない ROWIDを格納しない クラスタ索引 2つ以上の表を結合して一つのデータブロックに格納 索引クラスタ WHERE句によく指定される共通の列をクラスタキーに採用する場合 ハッシュクラスタ 大量のデータの中から一件だけのデータを検索する場合 ハッシュ関数に渡されたクラスタキーの列値によって、クラスタブロック別に分類 索引の再構築 ビットマップ索引やクラスタ索引では、オンライン構築や再構築を使用できない alter index - next / maxextents / initrans / maxtrans alter index - allocate extent size句やadd datafile句を指定できる alter index - deallocate unused; keep句により領域を確保しながら取り除くことも可能 alter index - rebuild [tablespace -]; 新しい索引は既存の索引を元に作成 既存の索引を使用するため再構築にソートは不要 再構築中は古い索引と新しい索引の両方を格納する領域が必要 再構築後古い索引は削除される 作成された索引には削除済みエントリは含まれない 索引再構築中も問合せでは既存索引を使用可能 alter index - rebuild online オンライン作成により索引の作成中、再構築中に実表に対するDML操作が可能 再構築中の対象の表の変更は、再構築後に索引に反映 ただし、オンライン作成には時間がかかるので、ピーク時の実行を避ける dba_objectsビューのステータスがinvalidの場合 dbverifyを実行する 又は analyzeにより破損を確認したならば索引の再構築 B*Tree索引 カーディナリティの高い大量のデータ 更新多 OLTP環境向き ルート-ブランチ-リーフ(キー値とROWID) alter index - rebuild [online]で変更可能 新旧の表領域が必要 性能向上 表と同様に、alter index - storage / allocate extent / deallocate unused が使用可能 storage句により索引用セグメントが作成される 逆引き索引 I/O分散に有効 範囲指定時は使用されない reverse指定 nosortとは排他コマンド ビットマップ索引 カーディナリティの低い大量のデータ 高速処理・トランザクション少 DSS環境向き create_bitmap_area_sizeで指定 デフォルト8MB 大きい方がパフォーマンス向上 索引の結合 alter index - coalesce 索引の妥当性チェック analyze index - validate structure index_statsに結果 未使用索引の監視 analyze index - monitoring usage v$object_usageに結果 索引が使用されたかどうかをチェック 列に関しての索引情報 dba_indexes / dba_ind_columns 整合性制約の管理 遅延制約 コミット時に整合性をチェック deferrable [initially (immediate / deferred)]により指定 制約の有効化 [disable / enable ][validate / novalidate] 無効にすると制約のもととなる一意制約が削除される 親表である時は cascade constraints句をつける EXCEPTIONS表 utlexcept.sqlで作成 $ORACLE_HOME/rdbms/adminにある alter table - enable constraint - exceptions で有効化してチェック 列に関しての制約情報 dba_constraints / dba_cons_columns ユーザーの作成 特権ユーザーの認証方法 OS認証・PWD認証 OS認証の設定 sysoper / sysdbaを割り当てたUNIXグループ ( 通常dba ) にユーザーの属するグループを設定 remote_login_passwordfile=none に設定後 sysoper / sysdbaでDBに接続 create user - identified externally OS認証作成 パスワードファイル認証の設定 orapwd file= password= entries=最大エントリ でパスワードファイルを作成 remote_login_passwordfile=exclusive インスタンスが一つの場合 sysdba権限で接続可能 ( grant で付加 ) remote_login_passwordfile=shared orapwd後、sys / internalのみがアクセス v$pwfile_usersを参照して sysdba / sysoperをもつユーザー名・PW認証可の時のみ OS認証を示す接頭辞 初期化パラメータos_authent_prefix参照 quota設定 undo表領域や一時表領域用にクォータを設定する必要はない quotaを0に設定すると、既存のエクステントから新しいエクステントを取得しようとするとエラー ユーザーに関する情報・ユーザーの表領域使用情報 dba_users / dba_ts_quotas プロファイルの管理 デフォルトプロファイル プロファイルが明示指定されていないユーザーに割り当てられる alter profile default -- で変更 プロファイルを drop profile により消去するとデフォルトになる デフォルトプロファイルは消去できない リソースのタイプ dba_profiles の resource_typeで確認 kernel か password プロファイルによるリソースの制限 per_session / per_call セッションレベルの制限 トランザクションのロールバックと切断 コールレベルの制限 文単位のロールバックのみ CPU時間・I/O操作・アイドル時間・接続時間・メモリ領域・同時実行セッション数 cpu_ / logical_reads_ / idle_time / connect_time / private_sga / sessions_per_user リソースの使用禁止設定 alter system set resource_limit=true kernelタイプのみ有効 resource_cost 各リソースに割り当てられた重みを表示 プロファイルの割り当ては、現在接続中のセッションには影響しない プロファイルによるパスワードの管理 failed_login_attempts / password_life_time / _reuse_time / _reuse_max / _lock_time / _grace_time PL/SQLファンクションであるutlpwdmg.sql password_verify_function=trueで、パスワードの複雑さを検証 プロファイルに関する情報の取得 dba_profiles と dba_usersを参照すべし 権限の管理 システム権限・ロールの付与 grant - to user with admin option / revoke - from user 削除時、CASCADEは発生しない dba_sys_privs / session_privsより情報取得 オブジェクト権限の付与 grant - on obj to user with grant option / revoke - on obj from user 付与者の権限が抹消されると、連鎖的にCASCADEが発生 dba_tab_privs / dba_col_privsより情報取得 ディクショナリ参照権限 通常はsys / sysdba / sysoperのみ o7_dictionary_accessibility=trueにより、sys / sysdba / sysoperでなくてもシステムdictionaryを参照可能 OS監査 インスタンスの起動・停止を記録 audit_trail=os データベース監査 sysdba /sysoper以外のアクションを監視 文監査・権限監査・オブジェクト監査がある 接続時間・論理I/O回数・実行ユーザ数のピーク 全レコードをDB監査証跡 ( sys.aud$表 ) に記録 限りなく拡張するため整理が必要 sysユーザーであるか、delete_catalog_roleをもつ必要がある また、sys.aud$表にある監査結果を参照するには、dba_audit_trail / _exists / _object / _session / _statement 文監査のオプション 権限を指定するのではない audit固有のエイリアスを使う index / profile / role / session / synonym / table / user / view / - table / procedure / sequence 値ベース監査 データベーストリガーにより値ベース監査 DBトリガーの発生 インスタンス起動・停止・エラー・ログイン・DDL・DML(表・ビュー) 権限監査のチェック順序 所有者権限・オブジェクト権限・システム権限の順にチェックされる 所有者が表を検索すると、オブジェクト権限監査にはひっかからない 監査の有効化 文監査と権限監査は、次のセッションから有効になるが、オブジェクト権限は現行セッションから有効 audit_trailパラメータ データベース監査を実行するには、audit_trailがosまたはdbに設定されている必要 満杯時の作業 sys / sysdbaでの作業は、証跡が満杯であっても可能 ロールの管理 ロールの目的 ロールを使用して権限をグループ化することができる デフォルトロール ログイン時に有効になるロール デフォルトロールをnoneにすると ユーザーが直接付与された権限のみになる alter user - default role none; デフォルトロールにパスワードを生成できる create role - [identified by - / not identified] ロールの特徴 システム・オブジェクト混在可・ユーザー毎の使用不可・所有者なし・パスワード ロールの使用禁止 set role all [except -] アプリケーションロール PL/SQLパッケージでのみ有効 create role - identified using schema.package ロールに関するDDV名に見られる特徴 dba_ (全ユーザ・ロールに対し) / role_ (ロールに対し) / session_ (セッション内で有効な) _role_ (ロール) / _sys_ (システム権限) / _tab_ (表権限) / _col_ (行権限) _roles (ロールに関する情報) / _privs (種類の取得) 一般レベルのロールに関する情報の取得 dba_roles / session_roles 付与されているロールの取得 dba_role_privs / role_role_privs ロール内の権限の取得 dba_sys_privs / role_sys_privs / role_tab_privs グローバリゼーションサポートの使用 character setの種類 US7ASCII / WE8--- / JA16--- national character setの種類 Unicodeキャラクタ UTF8 / AL16UTF16 / AL32UTF8 DB作成時の指定 character set と national character set 現行のDBcharsetがUS7ASCIIの場合、alter database character setで変更可能 NLSパラメータ nls_language・nls_territoryが他のNLSパラメータのデフォルトを設定 nls_language 言語・年号・デフォルトソート nls_territory 使用する通貨記号など地域依存の規則・デフォルト日付書式など nls_sort SQL関数 nls_upper / nls_lower / nls_initcap / nlssortにて指定 nls_date_language / nls_calendar / nls_currency / nls_iso_currency / nls_date_language NLSパラメータを参照する為のDDV nls_session_parameters セッション内NLSパラメータ nls_database_parameters CHARSET / NCHARSET nls_instance_parameters 明示的に指定のNLS初期化パラ nls_valid_values nlsパラメータに設定可能な値 nls_lang環境変数 言語_地域.キャラクタセット SQL関数 to_date / to_number / to_charの中でパラメータ指定
https://w.atwiki.jp/mtgwiki/pages/998.html
Oracle(ルール用語) カードの最新のテキスト集のことであり、カードの解釈においてはこれを用いなければならない。 いわゆるエラッタは、実際にはOracleの修正である。 最近では、新カードセットの登場にあわせて更新されることが多い。ただし、緊急のルール変更の場合、この限りではない。 Oracleに誤りがないわけではない。細かい記述が整合していないカードはいくらでもあるのが現状である。もしOracleに誤りが見つかったならば、ヘッド・ジャッジはそのトーナメント中、Oracleを却下してもよい。 一般的な意味でのOracle(オーラクル、オラクル)とは、「神のお告げ」「神託」「託宣」のこと。転じて賢人や助言を与える人のことを指す場合もあり、日本語版マジックのカード名等ではよく「巫女」と訳されている。もちろん文化や種族が違うので、日本における一般的なイメージの巫女とはかけ離れており、広く「巫者(ふしゃ)」と理解するほうが適当かもしれない。→ ヴェクの巫女/Oracle en-Vec、とぐろ巻きの巫女/Coiling Oracle 参考 [[http //gatherer.wizards.com/]] 公式カードデータベース。最新のオラクルはこちらから。 トーナメント用語 ルーリング エラッタ Oracle(Vanguard) Oracle/オラクル 手札 +1/ライフ +9 (0):あなたがコントロールする攻撃クリーチャー1体をアンタップし、戦闘から取り除く。 偵察/Reconnaissanceと同様の能力を持つヴァンガード。 注釈文が無いが、かつてのルールでは偵察/Reconnaissance同様そのクリーチャーは戦闘ダメージのやり取りをしなくなるはずだった。 しかし第6版ルール下では、戦闘ダメージが解決された後にアンタップすれば、普通に戦闘を行いながらもそれをアンタップできる。 つまり警戒と同様の効果が得られるというわけだ。 この機能変更は偵察/Reconnaissance自身にも起きている。 戦闘ダメージを与えたい場合は戦闘ダメージ・ステップまたは戦闘終了ステップで、 逆に与えたくない場合はブロック・クリーチャー指定ステップで能力を起動すればよい。 偵察と違い、なんと対象をとらない。被覆持ちを使う場合も安心である。 手札やライフの増減も含め、Seleniaの上位互換である。ただしこちらは起動型能力なので若干妨害されやすい。 参考 カード個別評価:Vanguard
https://w.atwiki.jp/restinpiece/pages/17.html
Oracle 殴り書き ROWNUM擬似列 問い合わせ結果に対して発生する擬似列 ソートした結果の表示の範囲の指定に使える。 MySQLのlimitはこれの玩具版? TO_DATE 文字列を日付型に変換、和暦を西暦に変換 http //www.shift-the-oracle.com/sql/functions/to_date.html TO_CHAR 数値式、数値型のフォーマット、データベースキャラクタセットへの変換 http //www.shift-the-oracle.com/sql/functions/to_char.html NVL NULL を別の値に置換、リストから最初の NULL 以外の値を探 http //www.shift-the-oracle.com/sql/functions/nvl-coalesce.html トランザクション処理 DCL文 http //cyberam.dip.jp/database/oracle/sql/dcl/dcl_main.html COMMIT コミットの仕組み:コミットとは、トランザクション における変更したレコードを確定すること。 http //www.shift-the-oracle.com/words/commit.html ROLLBACK ロールバックの仕組み:ロールバックとは、暗黙的なセーブポイント(※1)、または、明示的なセーブポイントまで変更した内容を取り消すこと。 http //www.shift-the-oracle.com/words/rollback.html データディクショナリビュー http //luna.gonna.jp/oracle/ora_ddv.html